//
// Created by xumy on 2021/9/9.
// 选择排序:从未排序的数据中找最小（大）值，插进另一个排好序的开头，以此循环
//

#include "iostream"

using namespace std;

void selection_sort(int arr[], int len) {

    int i, j, temp;

    for (i = 0; i < len - 1; ++i) {
        int min = i;
        for (j = i + 1; j < len; ++j) {
            if (arr[j] < arr[min]) {
                min = j;
            }
        }
        // 找到最小值后，交换两个变量
        if (min != i) {
            temp = arr[min];
            arr[min] = arr[i];
            arr[i] = temp;
        }
    }
}

int main() {
    int arrs[] = {3, 24, 5, 78, -1, 2304, 8, 1};
    int leng = sizeof(arrs) / sizeof(arrs[0]);

    selection_sort(arrs, leng);

    for (int i = 0; i < leng; ++i) {
        cout << arrs[i] << " ";

    }
    return 0;
}
